home *** CD-ROM | disk | FTP | other *** search
/ Amiga Plus 1995 #2 / Amiga Plus CD - 1995 - No. 2.iso / pd / mui / mirrormanager / docs / mirrormanager.doc < prev    next >
Text File  |  1995-04-11  |  74KB  |  2,022 lines

  1.  MirrorManager.guide
  2.  
  3.  
  4.  
  5.  
  6. This is the AmigaGuide® file MirrorManager.guide, produced by Makeinfo-1.55 from 
  7. the input file MirrorManager.texinfo.
  8.  
  9.  
  10. MirrorManager.guide
  11.  
  12.  
  13.  
  14. This document describes MirrorManager version 1.8, a Shareware Aminet
  15. mirror management system for the Amiga.
  16.  
  17. Copyright (C) 1994 by Tobias Ferber and Harald Kunze
  18.  
  19. WARNING:  THIS MANUAL IS STILL UNDER DEVELOPMENT.  NOT ALL OF THE
  20. AVAILABLE FEATURES OF MIRRORMANAGER ARE DESCRIBED HERE.  THERE MIGHT BE
  21. ALSO OBSOLETE STUFF IN THIS MANUAL!
  22.  
  23.  
  24.   Introduction                What (and why) is MirrorManager ?
  25.   Installation                How to install us
  26.   Configuring                 Customizing MirrorManager
  27.  
  28. Taking off with MirrorManager
  29.  
  30.   Creating a Mirror           Guidelines for the initial installment
  31.   Using the ListView          Descrtiption of the ListView items
  32.   Menu Items                  MirrorManager's menu structure
  33.  
  34. Controling MirrorManager
  35.  
  36.   ARexx Scripts               Using (and writing new) ARexx script files
  37.   ARexx Commands              Description of GUI built-in ARexx commands
  38.  
  39. Distribution politics
  40.  
  41.   Disclaimer                  Warranty?  No warranty.
  42.   License                     License agreement
  43.   MUI                         Stuntzi's MUI
  44.   MagicWB                     How can I get more of those beautiful icons?
  45.   Installer                   Commodore's installer program
  46.  
  47. Index
  48.  
  49.   ARexx Scripts Index         Alphabetically sorted scriptfile index
  50.   ARexx Commands Index        Overview of built-in ARexx commands in the GUI
  51.  
  52.   Master Index                Where can I find information about it?
  53.  
  54.  
  55.  
  56. MirrorManager.guide/Introduction
  57.  
  58. Introduction
  59. ************
  60.  
  61. MirrorManager is an ARexx based management system for directory trees.
  62. It is particularly useful for BBS or Mailbox sysops who use to download
  63. from an Aminet (ftp)site.  It is however also useful for `normal' users
  64. (like e.g. the authors) who simply hesitate to delete new software.
  65.  
  66. Before there was MirrorManager our usual way to archive downloaded
  67. files was very simple:  We moved them from the incoming directory to a
  68. quickly blowing up archive directory which of course lead to confusion
  69. and chaos.  But there is a much better way to organize a download
  70. archive:  The local Aminet mirror ...
  71.  
  72. However, the Aminet hierarchy is not fix (in fact it changes quite
  73. often) and so keeping the proper Aminet hierarchy manually is obviously
  74. a work intensive task.  But now MirrorManager is born and MirrorManager
  75. handles all this for you!
  76.  
  77. In detail, MirrorManager does the following:
  78.  
  79.    *   MirrorManager creates the complete Aminet tree in a given
  80.      directory adding   AmigaDOS filenotes to these directories
  81.      according to those in the Aminet TREE file.
  82.  
  83.    *   MirrorManager adds filenotes to the files in your incoming
  84.      directory   according to those listed in the Aminet INDEX file.
  85.  
  86.    *   MirrorManager copies or moves the files in your incoming: path
  87.      to the location in   your local Aminet mirror which is listed in
  88.      the Aminet INDEX file -   or optionally to a directory which is
  89.      mapped to this location.
  90.  
  91.    *   MirrorManager examines your local Aminet mirror and reports
  92.      differences in name,   location and comment there and in the
  93.      Aminet INDEX file.
  94.  
  95.    *   MirrorManager generates an index file for your local Aminet
  96.      mirror.
  97.  
  98. MirrorManager is fully ARexx based and everything it does can be
  99. controled via ARexx.  ARexx commands are discussed in ARexx Commands.
  100. See ARexx Scripts, for information about the supplied ARexx script
  101. files.
  102.  
  103. You also need to set-up several paths and filenames in order to use
  104. MirrorManager.  See Installation, Configuring for details.
  105.  
  106.  
  107.  
  108. MirrorManager.guide/Installation
  109.  
  110. Installing MirrorManager
  111. ************************
  112.  
  113. MirrorManager is distributed together with the Installer program from
  114. Commodore.  See Installer, for more information.
  115.  
  116. Simply double-click the Install-MirrorManager icon to install
  117. MirrorManager to disk.
  118.  
  119. We spent much time and tried to be extremly careful when writing this
  120. Installer script.  MirrorManager needs neither assigns nor environment
  121. variables so the Installer script will not modify any parts of your
  122. system.  During the installation procedure a directory MirrorManager
  123. will be created and all files will be copied into this directory.  No
  124. other parts of your disk will be touched unless you do not specify them
  125. explicitly.  We also included many help texts.  Please read them if you
  126. are not sure about what's going on!
  127.  
  128. After installing MirrorManager you need to set-up several paths and
  129. filenames.  See Configuring, for more information.
  130.  
  131.      Note: MirrorManager needs MUI.  See MUI, for information about how
  132.      to obtain it.  You should also have the actual Aminet INDEX and
  133.      TREE file to take off with MirrorManager.
  134.  
  135.  
  136.  
  137. MirrorManager.guide/Configuring
  138.  
  139. Configuring MirrorManager
  140. *************************
  141.  
  142. MirrorManager comes with the MirrorManager MUI application and several
  143. ARexx scripts configuring the GUI.
  144.  
  145. This chapter explains how to configure the MirrorManager GUI
  146. application.  If you are only interested in the supplied ARexx Shell
  147. scripts then you might want to skip this part.
  148.  
  149.  
  150.   MirrorManager Configuration Scripts      What are they good for?
  151.   Using Configure                          The Installer script "Configure"
  152.   ToolTypes and Command Line Arguments     Controling MirrorManager on Startup
  153.  
  154. There are however also ARexx scripts which can be used from within the
  155. Shell and which do not need the MUI application.
  156.  
  157.  
  158.  
  159. MirrorManager.guide/MirrorManager Configuration Scripts
  160.  
  161. MirrorManager Configuration Scripts
  162. ===================================
  163.  
  164. Before MirrorManager can take off you need to create a configuration
  165. script containing the path and filenames of your personal installation.
  166. This is quite obvious, since MirrorManager needs to know where to find
  167. your local Aminet mirror.
  168.  
  169. A configuration script is an ARexx program which is executed when you
  170. select the Project/Load... menu item.  Of course these configuration
  171. scripts make extensive use of the GUI built-in ARexx command ADD.  See
  172. MirrorManager ARexx commands, for details.
  173.  
  174. One way to configure MirrorManager is using the GUI's Edit menu.  This
  175. is however a dull job -- especially if you are configuring
  176. MirrorManager from scratch.  For this reason I included my personal
  177. configuration script MirrorManager.rexx, which contains the most needed
  178. features.  You will however need to change the path and filenames in
  179. MirrorManager.rexx because these are correct for my personal
  180. installation only.
  181.  
  182. The prefered way to set-up MirrorManager.rexx for your installation is
  183. using the supplied Installer script Configure, which can be found in
  184. the MirrorManager/rexx drawer.  Configure will ask you interactively
  185. for all needed paths and filenames and it offers a short help text on
  186. every step.  See Using Configure, for more information.
  187.  
  188. Alternatively you can edit MirrorManager.rexx with a text editor like
  189. e.g. MEmacs.  This can however only be recommended for advanced users
  190. because it requires a little bit more knowledge of the MirrorManager
  191. interna.  See MirrorManager scripts, MirrorManager.rexx for details.
  192.  
  193.  
  194.  
  195. MirrorManager.guide/Using Configure
  196.  
  197. Using Configure
  198. ===============
  199.  
  200. Coming with MirrorManager is my personal configuration script
  201. MirrorManager.rexx.  Since this file contains absolute path and
  202. filenames which are valid in my environment only, you need to set-up
  203. MirrorManager.rexx for your installation before you can use it.  The
  204. prefered way to to set-up these values is with the aid of the Installer
  205. script Configure, which is located in the MirrorManager/rexx drawer.
  206.  
  207. Simply double-click the Configure icon.  You will be asked for all
  208. needed path and filenames and on every step a short help text will be
  209. available.
  210.  
  211. After you satisfied Configure with all requested locations, the
  212. CONFIGNAME ToolType in the MirrorManager program icon will be set to
  213. rexx/MirrorManager.rexx.  This forces MirrorManager to load this
  214. configuration script when starting up.
  215.  
  216. Configure will remember your settings.  I.e. if you run Configure
  217. again, it will prompt with your last selection for each file and
  218. pathname.
  219.  
  220. Advanced users may prefer editing MirrorManager.rexx with a text editor
  221. like e.g. MEmacs.  See MirrorManager scripts, for details.
  222.  
  223.      Caution: If any path filename in MirrorManager.rexx has been
  224.      modified without using the Configure script, then Configure will
  225.      not prompt with the current default.  This is due to the Installer
  226.      program, which does not support evaluation of code at run-time.
  227.      Use the supplied Shell script SetConfigureDefaults to copy your
  228.      assignments from MirrorManager.rexx to Configure (1).
  229.  
  230. ---------- Footnotes ----------
  231.  
  232. (1)  I'm terribly sorry for that unsuffisticating solution, but I have
  233. no idea how to solve this problem in a better way.  Please contact me
  234. if you have a good idea!
  235.  
  236.  
  237.  
  238. MirrorManager.guide/ToolTypes and Command Line Arguments
  239.  
  240. ToolTypes and Command Line Arguments
  241. ====================================
  242.  
  243. Unless you did not change the default configuration, MirrorManager will
  244. come up with a tutorial demo.  To change this you should modify the
  245. MirrorManager ToolType value CONFIGNAME.  Here is a list of legal
  246. ToolTypes:
  247.  
  248. CONFIGICON=...
  249.      If this ToopType is given, MirrorManager will create a project
  250.      icon when saving the configuration   from within the GUI.  For
  251.      example,
  252.  
  253.             CONFIGICON=xtras/def_mm.info
  254.  
  255.      will force MirrorManager to use def_mm.info from the xtras/ drawer
  256.      as the default icon.    As you can see in the above example, the
  257.      path to the project icon can be specified relative to the
  258.      MirrorManager tool, i.e. relative to PROGDIR:.    Absolute
  259.      pathnames like e.g. env:sys/def_mima.info would be legal as well.
  260.  
  261.             Note:   MirrorManager tries to be very careful with your
  262.           project icon.
  263.  
  264.              -     MirrorManager will adjust the stack size in your
  265.                project icon to the maximum of the     values in the
  266.                MirrorManager tool icon your default project icon.
  267.                Note that MirrorManager needs at least 10240 bytes of
  268.                stack!
  269.  
  270.              -     MirrorManager will set the icon position of the
  271.                CONFIGICON to NO_ICON_POSITION.
  272.  
  273.      By default, i.e. if no CONFIGICON ToolType is given, no icon will
  274.      be saved with the configuration.
  275.  
  276. APPSTART=...
  277.      This ToolType defines the default application startup method.
  278.      Actually it it used to force a certain default tool entry in the
  279.      project icon saved with the configuration.    If no project icon
  280.      has been specified via the CONFIGICON ToolType then APPSTART does
  281.      nothing.    (1)
  282.  
  283.      For example,
  284.  
  285.             APPSTART=/MirrorManager
  286.  
  287.      sets the default tool for the configuration icon specified via
  288.      CONFIGICON to be   MirrorManager in the parent directory.
  289.  
  290.      By default, MirrorManager will choose the default tool for the
  291.      saved project icon in the following way:
  292.  
  293.         -     If the configuration is saved into a drawer inside the
  294.           MirrorManager directory then MirrorManager     will use a
  295.           relative pathname, i.e. a pathname relative to
  296.           MirrorManager's PROGDIR:.      This has the advantage that
  297.           you can move your MirrorManager directory to any location on
  298.           your     hard drive without changing the default tool for all
  299.           existing project icons.
  300.  
  301.         -     On the other hand, if you select a save path for your
  302.           configuration which is located outside     the MirrorManager
  303.           directory then MirrorManager will use an absolute pathname
  304.           for the project     icon's default tool.
  305.  
  306. CONSOLE=...
  307.      This ToolType sets the default console window for ARexx.    You
  308.      normally do not need this console window and so the default is
  309.  
  310.             CONSOLE=NIL:
  311.  
  312.      It is however useul to set a console window like e.g.
  313.  
  314.             CONSOLE=CON:30/20/600/80/MirrorManager/CLOSE/AUTO
  315.  
  316.      for debugging purposes.
  317.  
  318. CONFIGNAME=...
  319.      This ToolType specifies the startup configuration scriptfile.
  320.      By default a tutorial demo configuration script will be loaded on
  321.      startup.
  322.  
  323.      CONFIGNAME can also be used as a Shell argument keyword.    If you
  324.      execute MirrorManager from within a Shell then you can specify the
  325.       configuration scriptfile either relative to your current
  326.      directory or with   an absolute pathname.
  327.  
  328.      The ToolType value can be given as an absolute pathname or
  329.      relative to the GUI   application's path: PROGDIR:.
  330.  
  331. MAXPATHLEN=...
  332.      Not implemented yet!
  333.  
  334. MAXITEMLEN=...
  335.      Not implemented yet!
  336.  
  337. MAXCOMMANDLEN=...
  338.      Not implemented yet!
  339.  
  340. MAXARGLEN=...
  341.      Not implemented yet!
  342.  
  343. ---------- Footnotes ----------
  344.  
  345. (1)  This is a lie:   In fact, if you force icon creation by selecting
  346. the `Create Icons' item in the Settings menu   without specifying a
  347. project icon via the CONFIGICON ToolType then MirrorManager uses the
  348. system default project icon (usually env:sys/def_project.info) and
  349. adjusts the default tool for   this icon according to the ToolType
  350. value of APPSTART.
  351.  
  352.  
  353.  
  354. MirrorManager.guide/Creating a Mirror
  355.  
  356. Creating an Aminet Hierarchy
  357. ****************************
  358.  
  359. This chapter explains the initial creation of the local Aminet mirror.
  360. Please make sure that MirrorManager is installed and configured before
  361. you go on reading here.  See Installation, Configuring for details.
  362.  
  363.  
  364.  
  365. MirrorManager.guide/Using the ListView
  366.  
  367. Description of the ListView Items
  368. *********************************
  369.  
  370. When starting MirrorManager with the configuration script
  371. MirrorManager.rexx last will add some items to the ListView.  This
  372. chapter will explain the use of these items.
  373.  
  374. You must have configured the file MirrorManager.rexx to follow the
  375. steps below.  See Configuring, for more information.  You might want to
  376. skip this chapter if you don't want to use the MUI application.
  377.  
  378. Create/Update Aminet TREE
  379.      This item executes MakeTree in order to create the complete
  380.      Aminet directory hierarchy from your Aminet TREE file.    A
  381.      filenote will be added to all directories listed in the TREE file.
  382.  
  383. Delete Empty Directories
  384.      This item executes CutTree.mm on your Aminet directory which
  385.      will delete all empty directories there.
  386.  
  387. Update Aminet DirNotes
  388.      For each existing directory in your Aminet Hierarchy, a filenote
  389.      will be added.    The filenote will be read from the Aminet TREE
  390.      file.
  391.  
  392. Add FileNotes to INCOMING
  393.      For all files in your incoming directory a filenote will be added.
  394.       Last will be looked up in the Aminet INDEX file.
  395.  
  396. Add FileNotes from RECENT
  397.      Works like Add FileNotes to INCOMING except that the   filenotes
  398.      will be looked up in the RECENT file.
  399.  
  400. Add FileNotes from WANTED
  401.      Works like Add FileNotes to INCOMING except that the   filenotes
  402.      will be looked up in the WANTED file.
  403.  
  404. Cleanup INCOMING
  405.      Works like Add FileNotes to INCOMING.    Additionally the files
  406.      will be moved into the correct directory in your Aminet hierarchy.
  407.       Non-existant directories will be created.
  408.  
  409. Cleanup with new RECENT
  410.      Works like Cleanup INCOMING except that the   filenotes and the
  411.      destination directory will be looked up in the RECENT file.
  412.  
  413. Create FAST Index
  414.      Splits the Aminet INDEX file and creates several small FAST index
  415.      files.    These files will be written to the fast index path which
  416.      has been asked for in the Configure script.
  417.  
  418. Create/Update LOCAL Index
  419.      A local index file will be created for your local Aminet mirror.
  420.  
  421. Edit LOCAL Index File
  422.      Edits your local Aminet mirror's index file.
  423.  
  424. Reorganize Local Mirror
  425.      Compares the contents of your local index file with the Aminet
  426.      INDEX file.    Files located in a different directory than listed
  427.      in the Aminet INDEX file   will me moved to the correct location.
  428.       Non-existant directories will be created automatically.
  429.  
  430.      Files which do not exist in the Aminet INDEX will be moved to the
  431.      KickedPath,   a directory which has been asked for in the
  432.      Configure script.
  433.  
  434. Re-Insert Kicked Out Files
  435.      Files which have been moved to the KickedPath (e.g. by Reorganize
  436.      Local Mirror)   will be moved back to their former location.
  437.  
  438.             Caution: This operation needs your former local index file
  439.           to look up the kicked out files' locations.    I.e. you
  440.           should not update your local index file after calling
  441.           Reorganize Local Mirror   if you want to move back some of
  442.           the kicked out files into their old directories.
  443.  
  444. Sort Aminet INDEX File
  445.      Some people prefer an Aminet INDEX file which is sorted by
  446.      filenames, not by directories.    This item asks you for the first
  447.      sorting creterium and then sorts the Aminet INDEX file accordingly.
  448.  
  449. Edit Aminet INDEX File
  450.      This item runs an Editor and loads the Aminet INDEX file.
  451.  
  452. Edit WANTED Index
  453.      This item runs an Editor and loads your WANTED file.
  454.  
  455. Edit Configuration Script
  456.      This item runs an Editor and loads this configuration sctiptfile.
  457.  
  458.  
  459.  
  460. MirrorManager.guide/Menu Items
  461.  
  462. Menu Items and Menu Structure
  463. *****************************
  464.  
  465. The Project Menu
  466. ================
  467.  
  468. Load...
  469.      This will bring up a filerequester asking for a MirrorManager
  470.      configuration.
  471.  
  472.      Because MirrorManager configurations are based on ARexx it will be
  473.      loaded by   executing it as an ARexx script, configuring
  474.      MirrorManager via its ARexx port.
  475.  
  476.      See also: ARexx command LOAD
  477.  
  478. Save...
  479.      This will write your current configuration to disk without asking
  480.      for a   filename. It will be written over the last loaded
  481.      configuration which will   be deleted by this action. So be
  482.      careful with this command!
  483.  
  484.      See also: ARexx command SAVE
  485.  
  486. Save As...
  487.      This will bring up a filerequester asking for a name under which
  488.      you would   like to save your current configuration.
  489.  
  490.      See also: ARexx command SAVE
  491.  
  492. Locked
  493.      This switch is set by MirrorManager whenever it executes an ARexx
  494.      script or   command and is unset as soon as MirrorManager has
  495.      finished processing and is   idle again.
  496.  
  497.      If you unset this switch you are able to execute further ARexx
  498.      commands but   this might be dangerous:
  499.         -     Most ARexx scripts in the MirrorManager package work
  500.           directly on your files,     moving them from one directory to
  501.           another, adding filenotes etc.
  502.  
  503.         -     Every MirrorManager ARexx script writes information into
  504.           the MirrorManager     Working Window.      Because of these
  505.      two facts the scripts might `disturb' each other.    So the
  506.      default behaviour of the scripts is to lock the MirrorManager GUI.
  507.  
  508.      See also: ARexx command LOCK
  509.  
  510. About...
  511.      This will bring up an About requester with some information about
  512.      MirrorManager   and its authors.
  513.  
  514. Quit
  515.      This will terminate MirrorManager.    If your configuration has
  516.      changed since you last saved it you will have to   confirm a
  517.      requester to actually quit MM.
  518.  
  519.             Note: MirrorManager will not quit under the following
  520.           circumstances:
  521.              -     there are some open filerequester
  522.  
  523.              -     the application is locked
  524.  
  525.              -     there are still some ARexx commands running
  526.  
  527. The Edit Menu
  528. =============
  529.  
  530. Add
  531.      This will add an entry at the bottom of the listview.    The
  532.      initial name of the new entry is set to `- UNNAMED -', the command
  533.      and   argument fields are emtpy.
  534.  
  535.      See also: ARexx command ADD
  536.  
  537. Insert
  538.      This will insert an entry into the listview at cursorposition.
  539.      The initial name of the new entry is set to "- UNNAMED -", the
  540.      command and   argument fields are emtpy.
  541.  
  542.      See also: ARexx command INSERT
  543.  
  544. Remove
  545.      This will delete the currently active entry in the listview and
  546.      activate   its successor.
  547.  
  548.      See also: ARexx command REMOVE
  549.  
  550. Clone
  551.      This will make an identical copy of the currently active entry at
  552.      cursorposition.
  553.  
  554.      See also: ARexx command CLONE
  555.  
  556. Edit...
  557.      This will bring up a new window where you are able to edit a
  558.      listview entry.    As long as the 'Edit Window' is open the 'Main
  559.      Window' is busy.
  560.  
  561.      An entry is split into three parts:
  562.         -     The name of the entry appearing in the listview.
  563.  
  564.         -     The command which has to be an ARexx script or inline
  565.           code.
  566.  
  567.         -     The arguments for the command. If you specify inline code
  568.           in the command     field the argument field is ignored.
  569.  
  570. Clear
  571.      This will remove all entries from the listview and unset the
  572.      internal   CONFIGNAME variable.
  573.  
  574.      See also: ARexx command CLEAR
  575.  
  576. Sort
  577.      This will perform a case insensitive sort on the entries in the
  578.      listview.
  579.  
  580.      See also: ARexx command SORT
  581.  
  582. Top
  583.      This will move the currently active entry to the beginning of the
  584.      listview.
  585.  
  586.      See also: ARexx command TOP
  587.  
  588. Up
  589.      This will move the currently active entry in the listview one line
  590.      up.
  591.  
  592.      See also: ARexx command UP
  593.  
  594. Down
  595.      This will move the currently active entry in the listview one line
  596.      down.
  597.  
  598.      See also: ARexx command DOWN
  599.  
  600. Bottom
  601.      This will move the currently active entry to the end of the
  602.      listview.
  603.  
  604.      See also: ARexx command BOTTOM
  605.  
  606. The Output Menu
  607. ===============
  608.  
  609. Open Window
  610.      This will open the `Working Window' where the MirrorManager ARexx
  611.      scripts   will print their information.
  612.  
  613. Clear Window
  614.      This will clear the contents of the `Working Window'
  615.  
  616.      See also: ARexx command MESSAGE
  617.  
  618. Save Log...
  619.      This will bring up a filerequester asking you for a filename under
  620.      which   you would like to save the contents of the 'Working
  621.      Window'.
  622.  
  623.      See also: ARexx command SAVELOG
  624.  
  625.  
  626.  
  627. MirrorManager.guide/ARexx Scripts
  628.  
  629. ARexx Scripts
  630. *************
  631.  
  632. All ARexx scripts coming with MirrorManager expect their arguments
  633. introduced by a keyword which must be seperated from the argument value
  634. by one or more SPC characters.
  635.  
  636. For example,
  637.      rx MakeTree.rexx FROM "treefile" TO "pathname"
  638.  
  639. is the correct way to run MakeTree.rexx which has the template
  640. FROM/K/A,TO/A
  641.  
  642.      Caution: Legal keywords for each command are listed here in
  643.      ReadArgs() template style.  There is however a difference between
  644.      the way ReadArgs() parses the arguments and the way we do.
  645.  
  646.      For example,
  647.           rx MakeTree.rexx FROM="treefile" TO="pathname"
  648.  
  649.      would be legal for ReadArgs() but it is not legal for the ARexx
  650.      scripts listed here.  The = is not a legal keyword value delimiter
  651.      for ARexx.
  652.  
  653. There are .rexx and .mm script files coming with the MirrorManager
  654. distibution
  655.  
  656. .rexx
  657.      script files are absolutely independent and do never address to the
  658.       MirrorManager's GUI application.    This means that you can
  659.      execute them from a CLI/Shell, configure them for   a use with
  660.      Stefan Becker's ToolManager, or install them on any directory
  661.      management application.
  662.  
  663. .mm
  664.      script files need the MirrorManager MUI application.    They
  665.      depend on the way the GUI passes arguments to it's ARexx scripts
  666.      and   they heavily use the ARexx commands offered my the MUI
  667.      application.
  668.  
  669.      In addition to the options listed below, .mm scripts usually know
  670.      a switch AUTO/S.  Last can be used to force closing of the message
  671.       window after the script has completed.
  672.  
  673.  
  674.   MirrorManager scripts     Verbose documentation on all supplied script files
  675.   Calling Method            How MirrorManager executes ARexx code
  676.   Hints                     Hints for writing new scripts for MirrorManager
  677.  
  678.  
  679.  
  680. MirrorManager.guide/MirrorManager scripts
  681.  
  682. MirrorManager ARexx scripts
  683. ===========================
  684.  
  685. MakeTree FROM/K/A,TO/A,NOCREATE/S
  686.      MakeTree.rexx creates all directories listed in the given FROM
  687.      file relative to a given TO directory.  The directory structure
  688.      and a comment for each directory will be taken from that FROM
  689.      file, which is usually called TREE in case of the Aminet.
  690.  
  691.      The TREE file will be scanned top-down and line by line, empty
  692.      lines are ignored as well as lines beginning with a # character.
  693.      The first word (i.e.  everything upto the first white space) in
  694.      each line will be taken as the direcory name, the rest of the line
  695.      will be added as a filenote to the directory.
  696.  
  697.      For example, executing rx MakeTree.rexx FROM tree TO a:b with the
  698.      file TREE looking somewhat like this
  699.  
  700.           # All directories on Aminet
  701.           
  702.           new          Upload area
  703.           recent       Files uploaded the last seven days
  704.           biz          Business software
  705.           biz/cad      Computer aided design
  706.           ...
  707.  
  708.      creates the directories a:b/new, a:b/recent, ...  adding the
  709.      filenotes (comments) Upload area, ...  respectively.
  710.  
  711.           Caution: MakeTree.rexx is smart enough to create a path a:b/c
  712.           by creating the directory a:b before creating a:b/c.
  713.           However, a: must be legal of course.
  714.  
  715.      Using the option keyword NOCREATE will add filenotes for existing
  716.      directories only.  You might prefer this behaviour if you don't
  717.      use to keep a complete Aminet hierarchy and CleanupIncoming or
  718.      ExamineIndex created new directories.
  719.  
  720.      MakeTree.rexx needs the AmigaDOS commands MakeDir and FileNote
  721.      (and optionally RequestFile and Delete) available in your command
  722.      searchpath.
  723.  
  724. CutTree PATH/A
  725.      CutTree deletes empty directories in the given path.  I usually
  726.      don't keep a complete Aminet directory hierarchy because many of
  727.      them stay empty anyway and scanning them for new files
  728.  
  729. SplitIndex FROM/K/A,TO/K/A
  730.      bzzzzzz.
  731.  
  732. MakeIndex FROM/K/A,TO/A
  733.      MakeIndex.rexx is ment to create a local Aminet mirror index.  In
  734.      general it creates a list of all files available in a given path
  735.      including file size and file comment.
  736.  
  737.           Caution: Due to a problem with pragma('D') you must execute
  738.           this script using RX explicitly - even in the WShell.
  739.  
  740.      This ARexx script needs the AmigaDOS commands List and Sort
  741.      available in your path.
  742.  
  743. ExamineIndex FILE/K/A,WITH/K/A,PATH/K,MOVE/S,COMMENT/S,MAKEPATH/S,FAST/S
  744.      hmmmmmm.
  745.  
  746. SortIndex FROM/K/A,FILE/S,DIR/S,QUICK/S,AUTO/S
  747. CleanupIncoming FROM/K/A,TO/K,WITH=INDEX/K/A,MOVE/S,COPY/S,NOCOMMENT/S,MAKEPATH/S,REPLACE/S,FAST/S,REMAP/K
  748.      CleanupIncoming.rexx examines (non-recursively) the files in your
  749.      incoming: directory and looks them up in an Aminet mirror INDEX
  750.      file.  For each file in your incoming: directory which is listed
  751.      exactly once in the Aminet index file the following actions can be
  752.      performed:
  753.  
  754.         - A filenote (comment) can be added according to the one listed
  755.           in your Aminet index file and
  756.  
  757.         - The file can be copied (or moved) to the location listed in
  758.           the Aminet index.
  759.  
  760.      The Aminet directory hierarchy can be created using MakeTree.rexx
  761.  
  762.      CleanupIncoming.rexx needs the AmigaDOS commands List, Sort,
  763.      Search, Filenote, Copy and Delete available in your path.
  764.  
  765. MirrorManager.rexx
  766.      MirrorManager.rexx is the configuration file for the MirrorManager
  767.      MUI application.  MirrorManager.rexx will be executed by it's host
  768.      on startup when the ToolType or CLI option
  769.      CONFIGNAME=rexx/MirrorManager.rexx was set.  On the other hand if
  770.      MirrorManager.rexx was executed via RX or by double-clicking on
  771.      it's icon and no empty application is running then it tries to run
  772.      it's own MirrorManager executable.  If you want to write your own
  773.      configuration scripts then you should see Hints, for details.
  774.  
  775.      To set-up path and filenames in MirrorManager.rexx you should use
  776.      the configure script, which can be found in the MirrorManager/rexx
  777.      directory.  See Using Configure, for further details.
  778.  
  779. Demo
  780.      Demo.rexx demonstrates the use of the GUI's ARexx interface.  You
  781.      should execute this demo either via double-clicking on its icon or
  782.      by loading it as a configuration via Project/Load.  The actions
  783.      performed by Demo.rexx are fully self-explaining and need no
  784.      further documentation here.
  785.  
  786. whoami.rexx
  787.      This script resolves the own path and filename.  We decided to
  788.      include this scriptfile as a tutorial example because it is quite
  789.      a difficult task to do this correctly.
  790.  
  791.      Currently the PARSE SOURCE instruction is limited to a length of
  792.      64 characters.  This is an enormous problem since this makes it
  793.      impossible for an ARexx script to resolve its pathname if it is
  794.      located deeper in the directory hierarchy.  We have reported this
  795.      bug, but we did not receive a reply yet.
  796.  
  797.  
  798.  
  799. MirrorManager.guide/ARexx Commands
  800.  
  801. ARexx Commands
  802. **************
  803.  
  804. MirrorManager is fully ARexx based and everything it does can be
  805. controled via ARexx.
  806.  
  807. Since MirrorManager is a MUI application, it offers the default
  808. commands which are understood by every MUI program.  Every MUI
  809. application is able to receive commands via the built-in ARexx port.
  810. (For more information about MUI see MUI)
  811.  
  812.  
  813.   MUI built-in ARexx commands  
  814.   MUI Error codes  
  815.   MirrorManager ARexx commands  
  816.  
  817. If you want to write your own ARexx script files for MirrorManager you
  818. should also read Hints.
  819.  
  820.  
  821.  
  822. MirrorManager.guide/MUI built-in ARexx commands
  823.  
  824. MUI built-in ARexx commands
  825. ===========================
  826.  
  827. QUIT 
  828.      Ends the application.
  829.  
  830.      The behaviour of this command is very much like clicking the
  831.      closing Gadget of the application or pressing RCommand-Q or ESC.
  832.  
  833. HIDE
  834.      Hides (iconifies) the MirrorManager application.  This will
  835.      normally bring up the application icon MirrorManager.info or - if
  836.      this is non-existant - def_MUI.info which will be loaded from
  837.      env:sys/.  This can however be customized with the MUI Preferences
  838.      program.
  839.  
  840. SHOW
  841.      Shows (pops up) the iconified MirrorManager application.
  842.  
  843. INFO ITEM/A
  844.      According to the given ITEM parameter the result string is filled
  845.      with the following contents:
  846.  
  847.     TITLE
  848.           Title of the application (I.e. `MirrorManager')
  849.  
  850.     AUTHOR
  851.           Author of the  application
  852.  
  853.     COPYRIGHT
  854.           Copyright message
  855.  
  856.     DESCRIPTION
  857.           Short description
  858.  
  859.     VERSION
  860.           Version string
  861.  
  862.     BASE
  863.           Name of the ARexx port
  864.  
  865.     SCREEN
  866.           Name of the public screen
  867.  
  868.      For example,
  869.  
  870.           OPTIONS RESULTS
  871.           ADDRESS 'MIRRORMANAGER.1'
  872.           
  873.           'INFO Title';       SAY "Application title .......:" result
  874.           'INFO Author';      SAY "Author of the application:" result
  875.           'INFO Copyright';   SAY "Copyright message .......:" result
  876.           'INFO Description'; SAY "Short description .......:" result
  877.           'INFO Version';     SAY "Version string ..........:" result
  878.           'INFO Base';        SAY "Name of the ARexx port ..:" result
  879.           'INFO Screen';      SAY "Name of the pub screen ..:" result
  880.  
  881. HELP FILE/A
  882.      A list of all ARexx commands available for the application is
  883.      written into the   given file.  In addition to the default
  884.      commands MirrorManager supports many   application specific
  885.      commands.    The help list will contain these commands as well.
  886.  
  887.      For example,
  888.             ADDRESS 'MIRRORMANAGER.1'; HELP "ram:help.out"
  889.  
  890.      creates the file ram:help.out with the following contents:
  891.  
  892.  
  893.           Standard-Commands:
  894.           
  895.           Command        Template
  896.           -------        --------
  897.           quit
  898.           hide
  899.           show
  900.           info           ITEM/A
  901.           help           FILE/A
  902.           
  903.           
  904.           Commands for application "MirrorManager":
  905.           
  906.           Command        Template
  907.           -------        --------
  908.           sort
  909.           clear
  910.           numentries
  911.           add            NAME/A,COMMAND/A,ARGS
  912.           clone          NAME
  913.           remove         NAME
  914.           rename         NAME/A
  915.           execute        NAME
  916.           activate       NAME
  917.           up             NAME
  918.           down           NAME
  919.           top            NAME
  920.           bottom         NAME
  921.           load           FILE
  922.           save           FILE
  923.           configname     FILE
  924.           appstart       COMMAND
  925.           message        CLEAR/S,OPEN/S,CLOSE/S,STRING
  926.           complete       PERCENTAGE/N
  927.           working        STRING
  928.           requestchoice  TITLE/K,GADGETS/A,BODY/A
  929.           requestfile    DRAWER,FILE/K,TITLE/K,SAVEMODE/S,DRAWERSONLY/S,NOICONS/S
  930.           savelog        FILE
  931.           lock           ON/S,OFF/S
  932.  
  933.  
  934.  
  935. MirrorManager.guide/MUI Error codes
  936.  
  937. MUI Error codes
  938. ===============
  939.  
  940. In case of an error, MUI returns the following values to the rexx
  941. script:
  942.  
  943. -1
  944.      Wrong command definition in host program.  (Should never happen.)
  945.  
  946. -2
  947.      Out of memory.
  948.  
  949. -3
  950.      Unknown ARexx command.
  951.  
  952. -4
  953.      Syntax error.
  954.  
  955. If any of MirrorManager's own ARexx commands fail then either one of
  956. the above or 1 will be returned.  In general: A value rc ~= 0 always
  957. indicates an error.
  958.  
  959.  
  960.  
  961. MirrorManager.guide/MirrorManager ARexx commands
  962.  
  963. MirrorManager ARexx commands
  964. ============================
  965.  
  966. SORT
  967.      The SORT command performs a case insensitive sort on the
  968.      MirrorManager's ListView.  If SORT is called on an already sorted
  969.      ListView then identically named entries will be exchanged.
  970.  
  971.      Calling this function via ARexx has the same result as pressing
  972.      RCommand-S.
  973.  
  974. CLEAR
  975.      The CLEAR command removes all items from the MirrorManager's
  976.      ListView and it will unset the internal CONFIGNAME variable.  As a
  977.      consequence NUMENTRIES will return result = 0 after this action
  978.      has been performed.  This can also be achieved by pressing
  979.      RCommand-/.
  980.  
  981. NUMENTRIES
  982.      Returns the number of items in the MirrorManager's ListView.
  983.  
  984.      For example,
  985.           ADDRESS 'MIRRORMANAGER.1'
  986.           OPTIONS RESULTS
  987.           
  988.           NUMENTRIES
  989.           SAY 'There are currently' result 'items'
  990.  
  991. ADD NAME/A,COMMAND/A,ARGS
  992.      Creates a new entry and adds it to the bottom of the ListView.
  993.      The contents of the NAME field will appear in the MirrorManager's
  994.      ListView, COMMAND must contain the pathname of an ARexx program
  995.      and ARGS are the arguments for this ARexx program.
  996.  
  997.      For example,
  998.           ADDRESS 'MIRRORMANAGER.1'
  999.           ADD '"Add filenotes to INCOMING"',
  1000.               '"rexx/CleanupIncoming.mm"',
  1001.               '"FROM incoming: WITH aminet:INDEX"'
  1002.  
  1003.      will add an item Add filenotes to INCOMING which calls
  1004.      CleanupIncoming.mm with arguments FROM incoming: WITH aminet:INDEX.
  1005.  
  1006.      Note that all the commata `,' in the above example are ARexx line
  1007.      continuation tokens.  They must be removed if the ADD command is
  1008.      used in one single line.
  1009.  
  1010.      When pressing RCommand-A a new item will be added to the ListView.
  1011.      The new item will be named - UNNAMED - by default and can be
  1012.      edited pressing RCommand-E.
  1013.  
  1014.      New items will always become the active item of the ListView.
  1015.  
  1016.      You may also write ARexx inline code into the COMMAND field.  The
  1017.      ARGS field should however be empty then.
  1018.  
  1019.      For example,
  1020.           ADDRESS 'MIRRORMANAGER.1'
  1021.           ADD '"Edit current config"',
  1022.               '"*"OPTIONS RESULTS; CONFIGNAME; ADDRESS COMMAND ''Ed'' result*""'
  1023.  
  1024.      will start an Editor Ed with the name of the current configuration
  1025.      script as argument.
  1026.  
  1027.      See Calling Method, for more information about how MirrorManager
  1028.      executes ARexx code.
  1029.  
  1030. CLONE NAME
  1031.      The CLONE command makes an identical copy of an item in the
  1032.      ListView.  If no name is given, then the active item will be
  1033.      cloned.  The new item will be inserted directly before the
  1034.      original item in the list and it will become active (1).
  1035.  
  1036.      CLONE can be called via RCommand-C.
  1037.  
  1038. REMOVE NAME
  1039.      The REMOVE command deletes an item from the ListView.  If no name
  1040.      is given then the active item will be removed.  REMOVE  activates
  1041.      the next item if there is a next one, otherwise, if the removed
  1042.      item was the last in the list then its previous item (which now is
  1043.      the last item) will become active.
  1044.  
  1045.      For example,
  1046.           ADDRESS 'MIRRORMANAGER.1'
  1047.           
  1048.           REMOVE '"Edit current config"'
  1049.  
  1050.      removes the item in the above example.  This operation is
  1051.      identical to pressing RCommand-X.
  1052.  
  1053. RENAME NAME/A
  1054.      The RENAME command changes the name of the active item to the
  1055.      given one.  This operation will only redraw the active line in the
  1056.      ListView.  Renaming the current item can also be done by editing
  1057.      this item either by pressing RCommand-E or selecting Edit/Edit...
  1058.      from the menu.
  1059.  
  1060. EXECUTE NAME
  1061.      Executes a command by the name of its entry in the ListView.  If
  1062.      no name is given then the active item's command will be executed.
  1063.  
  1064.      EXECUTE can also be performed by double-clicking or pressing the
  1065.      Return key on the desired item.
  1066.  
  1067. ACTIVATE NAME
  1068.      ACTIVATE highlights a ListView item and makes it become the active
  1069.      item.  If no name is given then ACTIVATE returns the name of the
  1070.      active item.  Otherwise the command behind the given item will be
  1071.      returned.
  1072.  
  1073.      For example,
  1074.           OPTIONS RESULTS
  1075.           ADDRESS 'MIRRORMANAGER.1'
  1076.           
  1077.           ACTIVATE; name = result
  1078.           
  1079.           IF rc ~= 0 THEN SAY 'There is currently no active item.'
  1080.                      ELSE DO
  1081.                        ACTIVATE '"' || name || '"'; cmd = result
  1082.                        SAY name 'performs the following command:' cmd
  1083.                        END
  1084.  
  1085. UP NAME
  1086.      Moves a ListView item one line up.  If no name is given then the
  1087.      active item will be moved.  This operation is identical to
  1088.      pressing RCommand-U.
  1089.  
  1090.      For example,
  1091.           OPTIONS RESULTS
  1092.           ADDRESS 'MIRRORMANAGER.1'
  1093.           
  1094.           UP; pos= result
  1095.           
  1096.           IF rc = 0 THEN DO WHILE pos > 0
  1097.             'UP'; pos= result
  1098.             END
  1099.           ELSE SAY 'There is currently no item active.'
  1100.  
  1101.      would be a straight forward implementation of the TOP command.
  1102.  
  1103. DOWN NAME
  1104.      Moves a ListView item one line down.  If no name is given then the
  1105.      active item will be moved.  This operation is identical to
  1106.      pressing RCommand-D.
  1107.  
  1108. TOP NAME
  1109.      Moves an item to the beginning of the ListView.  If no name is
  1110.      given then the active item will be moved.  This operation is
  1111.      identical to pressing RCommand-T.
  1112.  
  1113. BOTTOM NAME
  1114.      Moves an item to the end of the ListView.  If no name is given
  1115.      then the active item will be moved.  This operation is identical
  1116.      to pressing RCommand-B.
  1117.  
  1118. LOAD FILE
  1119.      The LOAD command executes a configuration file.  If called without
  1120.      arguments the last configuration will be re-loaded.
  1121.  
  1122. SAVE FILE
  1123.      SAVE writes an ARexx executable to disk which, when executed
  1124.      restores the current MirrorManager configuration.  If no filename
  1125.      is passed then the .rexx file will be written with the current
  1126.      default name.
  1127.  
  1128.      The SAVE command is identical to selecing Project/Save from the
  1129.      menu.  You cannot write back the current configuration via a
  1130.      single keypress.  Pressing RCommand-W will pop-up a filerequester
  1131.      asking you for the filename to write to.
  1132.  
  1133. CONFIGNAME FILE
  1134.      The CONFIGNAME command sets the current filename for the
  1135.      configuration script.  If called without parameters CONFIGNAME
  1136.      will return the current filename.
  1137.  
  1138.      The config filename will be set always after loading a
  1139.      configuration via Project/Load or after saving via Project/Save
  1140.      as....  It will also be set if these actions are performed via the
  1141.      ARexx commands LOAD or SAVE respectively.
  1142.  
  1143.      If MirrorManager has been run by executing a configuration
  1144.      scriptfile then this scriptfile will set CONFIGNAME to its own
  1145.      name.  Otherwise, if MirrorManager has been started by
  1146.      double-clicking its icon then CONFIGNAME will be taken from the
  1147.      ToolTypes.  When started from the CLI/Shell then the startup
  1148.      CONFIGNAME can be given via
  1149.  
  1150.           1> MirrorManager CONFIGNAME=rexx/myconfig.mm
  1151.  
  1152.           Caution: If MirrorManager is executed without specifying
  1153.           CONFIGNAME then CONFIGNAME will be unset!  This is so because
  1154.           the configuration scripts run MirrorManager without any
  1155.           arguments and of course they don't want MirrorManager to
  1156.           execute another configuration script.  In this case
  1157.           Project/Save will behave like Project/Save as... and open a
  1158.           file requester.
  1159.  
  1160. APPSTART COMMAND
  1161.      The APPSTART command sets the default command sequence for running
  1162.      MirrorManager.  If no arguments are given then the current default will
  1163.      be returned.
  1164.  
  1165.      APPSTART can be set via a ToolType called APPSTART=<command
  1166.      sequence>.  The default is Run MirrorManager.
  1167.  
  1168. MESSAGE CLEAR/S,OPEN/S,CLOSE/S,STRING
  1169.      The MESSAGE command prints the given string in the MirrorManager
  1170.      working window appending a new line to the current window contents.
  1171.      Calling MESSAGE without parameters is a no-op.
  1172.  
  1173.     MESSAGE CLEAR
  1174.           wipes out the contents of the working window
  1175.  
  1176.     MESSAGE OPEN
  1177.           opens the working window
  1178.  
  1179.     MESSAGE CLOSE
  1180.           closes the working window
  1181.  
  1182.      Given string will be appended to the window contents even if the
  1183.      working window is closed at the time MirrorManager recieves the
  1184.      MESSAGE command.
  1185.  
  1186. COMPLETE PERCENTAGE/N
  1187.      The COMPLETE command sets the gauge in the MirrorManager working
  1188.      window to the given value which has to be between 0 and 100.
  1189.  
  1190.      If COMPLETE is called without any parameters it will set the
  1191.      result string to the current gauge level.
  1192.  
  1193.      Even if the working window is closed at the time MirrorManager
  1194.      recieves the COMPLETE command, the gauge will be set to the given
  1195.      value.
  1196.  
  1197. WORKING STRING
  1198.      The WORKING command sets the title of the MirrorManager working
  1199.      window to the given string.  If it is called without any argument
  1200.      WORKING returns the current window title in the result string.
  1201.  
  1202. REQUESTCHOICE TITLE/K,GADGETS/A,BODY/A
  1203.      The REQUESTCHOICE command is similar to the Commodore
  1204.      RequestChoice program.  This gives the possibility to interact
  1205.      with the user.  REQUESTCHOICE opens a MUI-Requester which can be
  1206.      configured by
  1207.  
  1208.     TITLE
  1209.           Title for the requester window. Defaults to "MirrorManager"
  1210.  
  1211.     GADGETS
  1212.           Pointer to a string containing the possible answers.  The
  1213.           format looks like "_Save|_Use|_Test|_Cancel".  If you precede
  1214.           an entry with a '*', this answer will become the active
  1215.           object.  Pressing Return will terminate the requester with
  1216.           this response.  A underscore _ character indicates the
  1217.           keyboard shortcut for this response.
  1218.  
  1219.     BODY
  1220.           The requester's body text
  1221.  
  1222.      The gadget and body string is parsed by MUI's text engine so it
  1223.      may contain the special characters
  1224.  
  1225.     '\n'
  1226.           Start a new line. With this character you can e.g. create
  1227.           multi line buttons.
  1228.  
  1229.     ESC -
  1230.           Disable text engine, following chars will be printed without
  1231.           further parsing.
  1232.  
  1233.     ESC u
  1234.           Set the soft style to underline.
  1235.  
  1236.     ESC b
  1237.           Set the soft style to bold.
  1238.  
  1239.     ESC i
  1240.           Set the soft style to italic.
  1241.  
  1242.     ESC n
  1243.           Set the soft style back to normal.
  1244.  
  1245.     ESC <n>
  1246.           Use pen number n (2..9) as front pen. n must be a valid
  1247.           DrawInfo pen as specified in intuition/screens.h.
  1248.  
  1249.     ESC c
  1250.           Center current (and following) line(s).  This sequence is
  1251.           only valid at the beginning of a string or after a newline
  1252.           character.
  1253.  
  1254.     ESC r
  1255.           Right justify current (and following) line(s).  This sequence
  1256.           is only valid at the beginning of a string or after a newline
  1257.           character.
  1258.  
  1259.     ESC l
  1260.           Left justify current (and following) line(s).  This sequence
  1261.           is only valid at the beginning of a string or after a newline
  1262.           character.
  1263.  
  1264.     ESC I[s]
  1265.           Draw MUI image with specification <s>.  See autodocs of image
  1266.           class for image spec definition.
  1267.  
  1268.      a quick example:
  1269.  
  1270.           OPTIONS RESULTS
  1271.           ADDRESS 'MIRRORMANAGER.1'
  1272.           
  1273.           REQUESTCHOICE TITLE "Dolle Sache" "_Yep!" "*Ec*EbMUI*En*Nis magic"
  1274.  
  1275. REQUESTFILE DRAWER,FILE/K,TITLE/K,SAVEMODE/S,DRAWERSONLY/S,NOICONS/S
  1276.      The REQUESTFILE command ...
  1277.  
  1278. SAVELOG FILE
  1279.      The SAVELOG command ...
  1280.  
  1281. LOCK ON/S,OFF/S
  1282.      The LOCK command blafasel ...
  1283.  
  1284. ---------- Footnotes ----------
  1285.  
  1286. (1)  This is a lie.  To be honest: The new item will be added directly
  1287. below the original entry.  The active item remains unchanged.
  1288.  
  1289.  
  1290.  
  1291. MirrorManager.guide/Calling Method
  1292.  
  1293. How MirrorManager executes ARexx Code
  1294. =====================================
  1295.  
  1296. If you double-click one of MirrorManager's ListView items, MirrorManager
  1297. will examine the Command and Arguments field associated with the
  1298. selected item.
  1299.  
  1300. ARexx inline code
  1301. -----------------
  1302.  
  1303. If the contents of the Command field begins with a double quote " then
  1304. MirrorManager expects this to be inline code and executes it like the
  1305. ARexx starter command RX would.  The only difference to RX is that the
  1306. default host is set to the MirrorManager's ARexx port and the default
  1307. extension for external ARexx scripts is .mm.
  1308.  
  1309. ARexx script files
  1310. ------------------
  1311.  
  1312. On the other hand, if the contents of the Command field does not begin
  1313. with a double quote then the contents is expected to be the (path and)
  1314. filename of an ARexx script.  The pathname should be given relative to
  1315. the path of the MirrorManager MUI application.  However, also absolute
  1316. pathnames are possible.
  1317.  
  1318.      Caution: You must not quote the contents of the Command field
  1319.      unless it is ment as ARexx inline code!  MirrorManager will be
  1320.      able to execute your script file even if the path and/or the
  1321.      filename contains spaces.
  1322.  
  1323. Before executing an ARexx script MirrorManager will generate inline
  1324. code on its own.
  1325.  
  1326. Consider the following example:
  1327.  
  1328. Name
  1329.      Add filenotes to INCOMING
  1330.  
  1331. Command
  1332.      Ram Disk:MirrorManager/rexx/CleanupIncoming.mm
  1333.  
  1334. Arguments
  1335.      FROM "Ram Disk:incoming" WITH "aminet:INDEX"
  1336.  
  1337. After setting the default host for ARexx to the name of MirrorManager's
  1338. ARexx port, MirrorManager will execute the following inline code in
  1339. order to invoke CleanupIncoming.mm:
  1340.  
  1341.      "CALL 'Ram Disk:MirrorManager/rexx/CleanupIncoming.mm',
  1342.            'FROM','Ram Disk:incoming','WITH','aminet:INDEX'"
  1343.  
  1344. Double quotes inside the Arguments field are treated as you would expect
  1345. that for ordinary Shell commands.  I.e. A double quote inside a double
  1346. quoted argument needs a leading asterisk *.
  1347.  
  1348. For example,
  1349.  
  1350.      "a *quote* *" inside"
  1351.  
  1352. An asterisk however does not need to be prefixed by another asterisk.
  1353.  
  1354. Here is an overview how MirrorManager converts the contents of the
  1355. Arguments field which is shown on the left hand side of the following
  1356. table:
  1357.  
  1358.              a b c         'a','b','c'
  1359.              a "b c"       'a','b c'
  1360.              a"b           'a""b'
  1361.              a'b           'a''b'
  1362.              "a*"b"        'a""b'
  1363.              "a'b"         'a''b'
  1364.              "a""b"        'a','b'
  1365.  
  1366. Consider the source code rxcallstr.c for verbose documentation and
  1367. further details.
  1368.  
  1369. As you can see in the above example, MirrorManager will pass the
  1370. arguments to the ARexx script in tokenized form.  From within the ARexx
  1371. script one can reach the i-th argument with arg(i).  The ARexx variable
  1372. arg() contains the number of supplied aruments.  This is identical to
  1373. an invocation method of ARexx scripts with RXFB_TOKEN set.  And it is
  1374. much more convenient for the ARexx programmer because he doesn't need to
  1375. parse an argument string on its own.
  1376.  
  1377.  
  1378.  
  1379. MirrorManager.guide/Hints
  1380.  
  1381. Hints for writing new ARexx script files for MirrorManager
  1382. ==========================================================
  1383.  
  1384. Before writing ARexx scripts for MirrorManager you've got to make up
  1385. your mind if you want to make it GUI-dependent or if your script file
  1386. should better be executable from within any environment.
  1387.  
  1388.  
  1389.   GUI-dependent  
  1390.   Independent  
  1391.  
  1392.  
  1393.  
  1394. MirrorManager.guide/GUI-dependent
  1395.  
  1396. Writing GUI-dependent ARexx scripts
  1397. -----------------------------------
  1398.  
  1399. Programming the GUI's ARexx interface will most often be done in order
  1400. to configure MirrorManager to your own digests.  If your work should
  1401. however be useful for a greater variety of MirrorManager users then you
  1402. should keep in mind the following:
  1403.  
  1404.   1. MirrorManager has no assignments and needs no environment
  1405.      variables.  You should therefore never write MirrorManager
  1406.      configuration scripts depending on your environment and your
  1407.      assignments.  Instead you should take advantage of the fact that
  1408.      MirrorManager guarantees the current directory for all .mm scripts
  1409.      to be the directory MirrorManager resides in.  And usually the
  1410.      sub-directory rexx/ contains these .mm scripts.
  1411.  
  1412.   2. An important part of your configuration script makes up finding a
  1413.      legal host.  The following example demonstrates how to do this
  1414.      poperly:
  1415.  
  1416.           /*
  1417.           **  Finding a MirrorManager host
  1418.           */
  1419.           
  1420.           portbase = 'MIRRORMANAGER.'
  1421.           portlist = SHOW('P',,'0A'X)
  1422.           
  1423.           OPTIONS RESULTS
  1424.           DO WHILE WORDS(portlist) > 0
  1425.             PARSE VAR portlist portname '0A'X portlist
  1426.             IF COMPARE(portname,portbase) = LENGTH(portbase)+1 THEN DO
  1427.               ADDRESS(portname); 'NUMENTRIES'
  1428.               IF result = 0 THEN portlist= ""
  1429.                             ELSE ADDRESS
  1430.               END
  1431.             END
  1432.           
  1433.           IF ADDRESS() ~= portname THEN DO
  1434.             SAY 'MirrorManager is not running... exiting...'
  1435.             EXIT
  1436.             END
  1437.           
  1438.           /* ... */
  1439.           
  1440.           EXIT
  1441.  
  1442.   3. ARexx filenames containing spaces are currently somewhat difficult
  1443.      to execute.  They are no problem for MirrorManager but they seem
  1444.      to be for several other hosts.  Even RX needs a double quoted
  1445.      ToolType value for CMD, for example
  1446.  
  1447.           CMD="my script.rexx"
  1448.  
  1449.      or a kludge for executing my script.rexx from within the Shell:
  1450.  
  1451.           RX "call 'my example.rexx'"
  1452.  
  1453.   4. If your configuration script should be executable from outside the
  1454.      GUI then you must set your own name to the application via the
  1455.      CONFIGNAME command.  Otherwise CONFIGNAME will either be unset and
  1456.      calling SAVE without a parameter would fail, or if CONFIGNAME was
  1457.      set then SAVE would overwrite the old configuration.
  1458.  
  1459.      In fact it is not easy to determine the own full pathname from
  1460.      within an ARexx script, so here is an example
  1461.  
  1462.           PARSE SOURCE . . s
  1463.           
  1464.           t= LEFT(s,LASTPOS(':',s))
  1465.           called= STRIP( LEFT(t,LASTPOS(' ',t)) )
  1466.           
  1467.           CALL PRAGMA('W','N')
  1468.           DO WHILE ~EXISTS(called) & LASTPOS(' ',called) > 0
  1469.             called= LEFT(called,LASTPOS(' ',called)-1)
  1470.             END
  1471.           
  1472.           IF LEFT(cr,1) = 'R' THEN DO
  1473.             host= ADDRESS()
  1474.             PARSE VAR s (called) s (host) .
  1475.           
  1476.             resolved= STRIP(s)
  1477.           
  1478.             CALL PRAGMA('W','N')
  1479.             DO WHILE ~EXISTS(resolved)
  1480.               resolved= LEFT(resolved,LASTPOS(' ',resolved)-1)
  1481.               END
  1482.           
  1483.             END
  1484.           
  1485.           /* ... */
  1486.  
  1487.      At the bottom of this example, i.e. after the /* ... */ the
  1488.      variable called contains the filename used for calling this script
  1489.      while resolved contains the expanded path including the root's
  1490.      volume name.
  1491.  
  1492.      An example procedure whoami can also be found in the rexx/ drawer
  1493.      coming with MirrorManager.  See MirrorManager scripts, whoami.rexx
  1494.      for more information.
  1495.  
  1496.   5. You should always test the result of a call.  All of the GUI's
  1497.      ARexx commands return 0 in the rc variable if they have been
  1498.      successful.  A value ~= 0 always indicates an error.  See
  1499.      MUI Error codes, for details on error codes.
  1500.  
  1501.   6. Strings passed to the GUI always have to be quoted twice if they
  1502.      contain any white space.  Additionally, double quotes `"' and
  1503.      asterisks `*' in a string passed to the GUI have to be escaped
  1504.      with an asterisk `*' to `*"' and `**' respectively.  For this
  1505.      reason it is often useful to implement a function that quotes a
  1506.      string for you.
  1507.  
  1508.      For example,
  1509.           /* translate '"' into '*"' and '*' into '**' */
  1510.           
  1511.           transquote: PROCEDURE
  1512.             PARSE ARG s
  1513.             t= s
  1514.             q= MAX( LASTPOS('*',s), LASTPOS('"',s) )
  1515.           
  1516.             DO WHILE q > 0
  1517.               t= INSERT('*',t,q-1,1)
  1518.               s= LEFT(s,q-1)
  1519.               q= MAX( LASTPOS('*',s), LASTPOS('"',s) )
  1520.               END
  1521.           
  1522.             RETURN '"' || t || '"'
  1523.  
  1524.      double quotes the given argument string and translates each
  1525.      occurence of a double quote `"' into `*"' and each occurence of
  1526.      `*' into `**'.  Here is an example for the usage of
  1527.      transquote with the ADD command:
  1528.  
  1529.           ADDRESS 'MIRRORMANAGER.1'
  1530.           
  1531.           ADD transquote('Say hello') transquote('"SAY ''Hello world!''"')
  1532.  
  1533.  
  1534.  
  1535. MirrorManager.guide/Independent
  1536.  
  1537. Writing GUI Independent ARexx Scripts for MirrorManager
  1538. -------------------------------------------------------
  1539.  
  1540. The .rexx script files supplied with MirrorManager are all GUI
  1541. independent, i.e. they never address to the MirrorManager's GUI host.
  1542. This guarantees functionality from within any environment.
  1543.  
  1544. The following is recommended to this kind of MirrorManager scripts:
  1545.  
  1546.   1. The template for command line arguments sould be available in a
  1547.      ReadArgs() style.  At most any user will expect this kind of
  1548.      argument passing meanwhile.  The following example demonstrates a
  1549.      convenient argument parsing for a template
  1550.      REQUIRED/K/A,OPTIONAL/K,SWITCH/S
  1551.  
  1552.           /*
  1553.           **  parse command line arguments
  1554.           */
  1555.           
  1556.           required = ""
  1557.           optional = ""
  1558.           switches = ""
  1559.           
  1560.           IF ( ARG() < 1 ) | ( (ARG() = 1) & ARG(1)= '?' ) then do
  1561.             OPTIONS PROMPT "REQUIRED/A,OPTIONAL,BOOL=SWITCH/S: "
  1562.             PARSE PULL ARGS
  1563.             END
  1564.           ELSE PARSE ARG args
  1565.           
  1566.           DO WHILE WORDS(args) > 0
  1567.             av= next_arg()
  1568.             SELECT
  1569.               WHEN UPPER(av) = "REQUIRED" then do
  1570.                 IF WORDS(args) > 0 THEN required= next_arg()
  1571.                 ELSE DO
  1572.                   SAY "missing argument value after REQUIRED keyword"
  1573.                   EXIT usage()+5
  1574.                   END
  1575.                 END
  1576.           
  1577.               WHEN UPPER(av) = "OPTIONAL" THEN DO
  1578.                 IF WORDS(args) > 0 THEN optional= next_arg()
  1579.                 ELSE DO
  1580.                   SAY "missing arument value after OPTIONAL keyword"
  1581.                   EXIT usage()+5
  1582.                   END
  1583.                 END
  1584.           
  1585.               WHEN (UPPER(av) = "BOOL") | (upper(av) = "SWITCH") then do
  1586.                 switches = switches || 's'
  1587.                 END
  1588.           
  1589.               OTHERWISE DO
  1590.                 IF av ~= '?' THEN SAY "Unknown keyword" av
  1591.                 EXIT usage()+5
  1592.                 END
  1593.           
  1594.             END /* select */
  1595.           
  1596.           END /* do */
  1597.  
  1598.           IF WORDS(required) < 1 then do
  1599.             SAY "required argument missing"
  1600.             EXIT usage()+5
  1601.             END
  1602.           
  1603.           /* ... */
  1604.           
  1605.           IF LASTPOS('s',switches) > 0 THEN DO
  1606.              /* what this switch stands for */
  1607.              END
  1608.           
  1609.           /* ... */
  1610.           
  1611.           next_arg: PROCEDURE EXPOSE args
  1612.             args= STRIP(args)
  1613.             IF LEFT(args,1) = '"' THEN PARSE VAR args '"' a '"' args
  1614.                                   ELSE PARSE VAR args     a     args
  1615.             RETURN STRIP(a,'b','"');
  1616.  
  1617.  
  1618.  
  1619.  
  1620. MirrorManager.guide/Disclaimer
  1621.  
  1622. Disclaimer
  1623. **********
  1624.  
  1625. Warranty? No warranty.
  1626. ======================
  1627.  
  1628. There is no warranty for this software package. Although the authors
  1629. have tried to prevent errors, they cannot guarantee that the software
  1630. package described in this document is 100% reliable. You are therefore
  1631. using this material at your own risk. The authors cannot be made
  1632. responsible for any damage which is caused by using this software
  1633. package.
  1634.  
  1635.  
  1636.  
  1637. MirrorManager.guide/License
  1638.  
  1639. License
  1640. *******
  1641.  
  1642. Copyright
  1643. =========
  1644.  
  1645. MirrorManager is (c)Copyright 1994 by Tobias Ferber and Harald Kunze
  1646.  
  1647.      Tobias Ferber                  Harald Kunze
  1648.      Goethestrasse 32               Nuitsstrasse 29
  1649.      76135 Karlsruhe                76185 Karlsruhe
  1650.      ukjg@rz.uni-karlsruhe.de       uklg@rz.uni-karlsruhe.de
  1651.      
  1652.                             @ @
  1653.                      ---oOO-(_)-OOo---
  1654.  
  1655. MirrorManager is ShareWare.
  1656.  
  1657. THIS IS A BETA VERSION !!!
  1658.  
  1659. Thanks to all beta testers, especially to Rene Petri, Mark Rose and
  1660. Tobias Walter.
  1661.  
  1662. Support ShareWare!
  1663. ------------------
  1664.  
  1665. Please feel free to fill out the registration form!  It can be found in
  1666. your MirrorManager/docs drawer.
  1667.  
  1668. Distribution
  1669. ============
  1670.  
  1671. This software package is freely distributable under the concept of
  1672. ShareWare.  It may be put on any media which is used for the
  1673. distribution of free software, like Public Domain disk collections,
  1674. CDROMs, FTP servers or bulletin board systems.
  1675.  
  1676. In order to ensure the integrity of this software package, distributors
  1677. should use the original archive file. The authors cannot be made
  1678. responsible if this software package has become unusable due to
  1679. modifications of the archive contents or of the archive file itself.
  1680.  
  1681. There is no limit on the costs of the distribution, e.g. for the media,
  1682. like floppy disks, streamer tapes or compact disks, or the process of
  1683. duplicating.  Such limits have been proven to be harmful to the idea of
  1684. freely distributable software, e.g. instead of reducing the price of
  1685. the floppy disk below the limit, the software was simply removed from
  1686. the master disk.
  1687.  
  1688. Usage Restrictions
  1689. ==================
  1690.  
  1691. No program, document, data file or source code from this software
  1692. package, neither in whole nor in part, may be used on any machine which
  1693. is used
  1694.  
  1695.    *   for the research, development, construction, testing or
  1696.      production of   weapons or other military applications. This also
  1697.      includes any machine   which is used in the education for any of
  1698.      the above mentioned purposes.
  1699.  
  1700.    *   by people who accept, support or use violence against other
  1701.      people,   e.g. citizens from foreign countries.
  1702.  
  1703.  
  1704.  
  1705. MirrorManager.guide/MUI
  1706.  
  1707. MUI - MagicUserInterface
  1708. ************************
  1709.  
  1710. MirrorManager uses
  1711.  
  1712.                        MUI - MagicUserInterface
  1713.  
  1714.                   (C) Copyright 1993 by Stefan Stuntz
  1715.  
  1716. MUI is a system to generate and maintain graphical user interfaces.
  1717. With the aid of a  preferences program, the user of an application has
  1718. the ability to customize the outfit according to his personal taste.
  1719.  
  1720. MUI is distributed as shareware.  To obtain a complete package
  1721. containing lots of examples and more information about registration
  1722. please look for a  file  called muiXXusr.lha  (XX means the latest
  1723. version number) on your local bulletin boards or on public domain disks.
  1724.  
  1725. If you want to register directly, feel free to send DM 20.-  or  US$
  1726. 15.- to
  1727.  
  1728.                              Stefan Stuntz
  1729.  
  1730.                        Eduard-Spranger-Straße 7
  1731.  
  1732.                              80935 München
  1733.  
  1734.                                 GERMANY
  1735.  
  1736.  
  1737.  
  1738. MirrorManager.guide/Installer
  1739.  
  1740. Installer
  1741. *********
  1742.  
  1743. Along with MirrorManager comes the `Installer' from Commodore:
  1744.  
  1745.      Installer and Installer project icon
  1746.      (c) Copyright 1991-93 Commodore-Amiga, Inc.  All Rights Reserved.
  1747.      Reproduced and distributed under license from Commodore.
  1748.      
  1749.      INSTALLER SOFTWARE IS PROVIDED "AS-IS" AND SUBJECT TO CHANGE;
  1750.      NO WARRANTIES ARE MADE. ALL USE IS AT YOUR OWN RISK. NO LIABILITY
  1751.      OR RESPONSIBILITY IS ASSUMED.
  1752.  
  1753. Installer project icon redesigned by Martin Huttenloher.  See MagicWB,
  1754. for details.
  1755.  
  1756.  
  1757.  
  1758. MirrorManager.guide/MagicWB
  1759.  
  1760. MagicWB
  1761. *******
  1762.  
  1763. All icons coming with MirrorManager are designed, redesigned or
  1764. inspired by Martin Huttenloher's MagicWB.
  1765.  
  1766. MagicWB has been designed and published by Martin Huttenloher under the
  1767. concepts of SHAREWARE and is Copyright (C) 1993 by Martin Huttenloher,
  1768. All rights reserved.
  1769.  
  1770.                           Martin Huttenloher
  1771.  
  1772.                            Am Hochstraess 4
  1773.  
  1774.                              D-89081  Ulm
  1775.  
  1776.                             Germany/Europe
  1777.  
  1778.  
  1779.  
  1780. MirrorManager.guide/ARexx Commands Index
  1781.  
  1782. ARexx Commands Index
  1783. ********************
  1784.  
  1785.  
  1786.  
  1787.   ACTIVATE                              MirrorManager ARexx commands
  1788.   ADD                                   MirrorManager ARexx commands
  1789.   APPSTART                              MirrorManager ARexx commands
  1790.   BOTTOM                                MirrorManager ARexx commands
  1791.   CLEAR                                 MirrorManager ARexx commands
  1792.   CLONE                                 MirrorManager ARexx commands
  1793.   COMPLETE                              MirrorManager ARexx commands
  1794.   COMPLETE                              MirrorManager ARexx commands
  1795.   CONFIGNAME                            MirrorManager ARexx commands
  1796.   DOWN                                  MirrorManager ARexx commands
  1797.   EXECUTE                               MirrorManager ARexx commands
  1798.   HELP                                  MUI built-in ARexx commands
  1799.   HIDE                                  MUI built-in ARexx commands
  1800.   INFO                                  MUI built-in ARexx commands
  1801.   LOAD                                  MirrorManager ARexx commands
  1802.   LOCK                                  MirrorManager ARexx commands
  1803.   MESSAGE                               MirrorManager ARexx commands
  1804.   NUMENTRIES                            MirrorManager ARexx commands
  1805.   QUIT                                  MUI built-in ARexx commands
  1806.   REMOVE                                MirrorManager ARexx commands
  1807.   RENAME                                MirrorManager ARexx commands
  1808.   REQUESTCHOICE                         MirrorManager ARexx commands
  1809.   REQUESTFILE                           MirrorManager ARexx commands
  1810.   SAVE                                  MirrorManager ARexx commands
  1811.   SAVELOG                               MirrorManager ARexx commands
  1812.   SHOW                                  MUI built-in ARexx commands
  1813.   SORT                                  MirrorManager ARexx commands
  1814.   TOP                                   MirrorManager ARexx commands
  1815.   UP                                    MirrorManager ARexx commands
  1816.   WORKING                               MirrorManager ARexx commands
  1817.  
  1818.  
  1819.  
  1820. MirrorManager.guide/ARexx Scripts Index
  1821.  
  1822. ARexx Scripts Index
  1823. *******************
  1824.  
  1825.  
  1826.  
  1827.   CutTree.mm                            MirrorManager scripts
  1828.   CutTree.rexx                          MirrorManager scripts
  1829.   Demo.rexx                             MirrorManager scripts
  1830.   ExamineIndex.mm                       MirrorManager scripts
  1831.   ExamineIndex.rexx                     MirrorManager scripts
  1832.   MakeIndex.mm                          MirrorManager scripts
  1833.   MakeIndex.rexx                        MirrorManager scripts
  1834.   MakeTree.mm                           MirrorManager scripts
  1835.   MakeTree.mm                           MirrorManager scripts
  1836.   MakeTree.rexx                         MirrorManager scripts
  1837.   MakeTree.rexx                         MirrorManager scripts
  1838.   MirrorManager.rexx                    MirrorManager scripts
  1839.   SortIndex.mm                          MirrorManager scripts
  1840.   SplitIndex.mm                         MirrorManager scripts
  1841.   SplitIndex.rexx                       MirrorManager scripts
  1842.   whoami.rexx                           MirrorManager scripts
  1843.  
  1844.  
  1845.  
  1846. MirrorManager.guide/Master Index
  1847.  
  1848. Master Index
  1849. ************
  1850.  
  1851.  
  1852.  
  1853.  
  1854.   .rexx                                 ARexx Scripts
  1855.   About...                              Menu Items
  1856.   Add FileNotes from RECENT             Using the ListView
  1857.   Add FileNotes from WANTED             Using the ListView
  1858.   Add FileNotes to INCOMING             Using the ListView
  1859.   Add                                   Menu Items
  1860.   BODY                                  MirrorManager ARexx commands
  1861.   Bottom                                Menu Items
  1862.   Cleanup INCOMING                      Using the ListView
  1863.   Cleanup with new RECENT               Using the ListView
  1864.   Clear Window                          Menu Items
  1865.   Clear                                 Menu Items
  1866.   Clone                                 Menu Items
  1867.   Create FAST Index                     Using the ListView
  1868.   Create/Update Aminet TREE             Using the ListView
  1869.   Create/Update LOCAL Index             Using the ListView
  1870.   Delete Empty Directories              Using the ListView
  1871.   Down                                  Menu Items
  1872.   Edit Aminet INDEX File                Using the ListView
  1873.   Edit Configuration Script             Using the ListView
  1874.   Edit LOCAL Index File                 Using the ListView
  1875.   Edit WANTED Index                     Using the ListView
  1876.   Edit...                               Menu Items
  1877.   Edit Menu                             Menu Items
  1878.   GADGETS                               MirrorManager ARexx commands
  1879.   Insert                                Menu Items
  1880.   Load...                               Menu Items
  1881.   Locked                                Menu Items
  1882.   NO_ICON_POSITION                      ToolTypes and Command Line Arguments
  1883.   Open Window                           Menu Items
  1884.   Output Menu                           Menu Items
  1885.   PARSE SOURCE                          MirrorManager scripts
  1886.   Procject Menu                         Menu Items
  1887.   Quit                                  Menu Items
  1888.   Re-Insert Kicked Out Files            Using the ListView
  1889.   Remove                                Menu Items
  1890.   Reorganize Local Mirror               Using the ListView
  1891.   Save As...                            Menu Items
  1892.   Save Log...                           Menu Items
  1893.   Save...                               Menu Items
  1894.   Sort Aminet INDEX File                Using the ListView
  1895.   Sort                                  Menu Items
  1896.   TITLE                                 MirrorManager ARexx commands
  1897.   Top                                   Menu Items
  1898.   TREE                                  MirrorManager scripts
  1899.   Update Aminet DirNotes                Using the ListView
  1900.   Up                                    Menu Items
  1901.   Aminet                                Introduction
  1902.   Aminet directory hierarchy            MirrorManager scripts
  1903.   APPSTART                              ToolTypes and Command Line Arguments
  1904.   APPSTART                              MirrorManager ARexx commands
  1905.   ARexx                                 ARexx Scripts
  1906.   ARexx                                 ARexx Commands
  1907.   ARexx code calling method             Calling Method
  1908.   ARexx Commands                        ARexx Commands
  1909.   ARexx Scripts                         ARexx Scripts
  1910.   Argument parsing                      Independent
  1911.   Arguments                             ToolTypes and Command Line Arguments
  1912.   Arguments (to the .rexx scripts)      ARexx Scripts
  1913.   AUTHOR                                MUI built-in ARexx commands
  1914.   BASE                                  MUI built-in ARexx commands
  1915.   called                                GUI-dependent
  1916.   Calling Method                        Calling Method
  1917.   Check the local mirror                MirrorManager scripts
  1918.   ClickMeForColors                      MagicWB
  1919.   Coding hints                          Hints
  1920.   Command line option parsing           Independent
  1921.   CONFIGICON                            ToolTypes and Command Line Arguments
  1922.   CONFIGNAME                            GUI-dependent
  1923.   CONFIGNAME                            ToolTypes and Command Line Arguments
  1924.   CONFIGNAME                            MirrorManager ARexx commands
  1925.   Configuration script                  MirrorManager scripts
  1926.   Configuration scripts                 GUI-dependent
  1927.   Configuration scripts                 MirrorManager Configuration Scripts
  1928.   Configure                             Using Configure
  1929.   Configuring                           Configuring
  1930.   CONSOLE                               ToolTypes and Command Line Arguments
  1931.   COPYRIGHT                             MUI built-in ARexx commands
  1932.   Default tool                          ToolTypes and Command Line Arguments
  1933.   Delete empty Directories              MirrorManager scripts
  1934.   Demo.rexx                             MirrorManager scripts
  1935.   DESCRIPTION                           MUI built-in ARexx commands
  1936.   Directory hierarchy                   MirrorManager scripts
  1937.   Disclaimer                            Disclaimer
  1938.   Distribution                          License
  1939.   Double quoting                        GUI-dependent
  1940.   Enter                                 MirrorManager ARexx commands
  1941.   Error codes                           MUI Error codes
  1942.   Examine the local index file          MirrorManager scripts
  1943.   Example code                          Hints
  1944.   Fast index file                       MirrorManager scripts
  1945.   Finding a MirrorManager host          GUI-dependent
  1946.   GUI dependent scripts                 GUI-dependent
  1947.   Harald Kunze                          License
  1948.   Hello world!                          GUI-dependent
  1949.   Hints                                 Hints
  1950.   Hostname                              ARexx Commands
  1951.   hostname                              GUI-dependent
  1952.   Icons                                 MagicWB
  1953.   Inataller                             Installation
  1954.   Independent ARexx scripts             Independent
  1955.   Initial ListView contents             Using the ListView
  1956.   Installation                          Installation
  1957.   Installer                             Installer
  1958.   Installer program                     Installer
  1959.   Introduction                          Introduction
  1960.   License                               License
  1961.   MagicUserInterface                    MUI
  1962.   MagicWB                               MagicWB
  1963.   Martin Huttenloher                    MagicWB
  1964.   MAXARGLEN                             ToolTypes and Command Line Arguments
  1965.   MAXCOMMANDLEN                         ToolTypes and Command Line Arguments
  1966.   MAXITEMLEN                            ToolTypes and Command Line Arguments
  1967.   MAXPATHLEN                            ToolTypes and Command Line Arguments
  1968.   Menu items                            Menu Items
  1969.   Menu structure                        Menu Items
  1970.   MUI                                   MUI
  1971.   MUI Error codes                       MUI Error codes
  1972.   No Warranty                           Disclaimer
  1973.   Options                               ToolTypes and Command Line Arguments
  1974.   Order form                            License
  1975.   Portname                              ARexx Commands
  1976.   Project icon                          ToolTypes and Command Line Arguments
  1977.   Project icon                          ToolTypes and Command Line Arguments
  1978.   Quoting                               GUI-dependent
  1979.   RCommand-/                            MirrorManager ARexx commands
  1980.   RCommand-A                            MirrorManager ARexx commands
  1981.   RCommand-B                            MirrorManager ARexx commands
  1982.   RCommand-C                            MirrorManager ARexx commands
  1983.   RCommand-D                            MirrorManager ARexx commands
  1984.   RCommand-E                            MirrorManager ARexx commands
  1985.   RCommand-E                            MirrorManager ARexx commands
  1986.   RCommand-O                            MirrorManager ARexx commands
  1987.   RCommand-Q                            MUI built-in ARexx commands
  1988.   RCommand-S                            MirrorManager ARexx commands
  1989.   RCommand-T                            MirrorManager ARexx commands
  1990.   RCommand-U                            MirrorManager ARexx commands
  1991.   RCommand-W                            MirrorManager ARexx commands
  1992.   RCommand-X                            MirrorManager ARexx commands
  1993.   ReadArgs()                            Independent
  1994.   ReadArgs()                            ARexx Scripts
  1995.   Registring MirrorManager              License
  1996.   resolved                              GUI-dependent
  1997.   Return                                MirrorManager ARexx commands
  1998.   RX                                    ARexx Scripts
  1999.   SCREEN                                MUI built-in ARexx commands
  2000.   SetConfigureDefaults                  Using Configure
  2001.   ShareWare                             License
  2002.   Sorting an index file                 MirrorManager scripts
  2003.   Split index file                      MirrorManager scripts
  2004.   Stack size                            ToolTypes and Command Line Arguments
  2005.   Stefan Stuntz                         MUI
  2006.   Templates                             ARexx Scripts
  2007.   Templates                             Independent
  2008.   TITLE                                 MUI built-in ARexx commands
  2009.   Tobias Ferber                         License
  2010.   ToolTypes                             ToolTypes and Command Line Arguments
  2011.   transquote                            GUI-dependent
  2012.   TREE                                  MirrorManager scripts
  2013.   Using the ListView                    Using the ListView
  2014.   VERSION                               MUI built-in ARexx commands
  2015.   Warranty                              Disclaimer
  2016.   whoami                                GUI-dependent
  2017.  
  2018.  
  2019.  
  2020.   MirrorManager.guide converted by
  2021.   Guide2Doc 1.0 (02-Nov-1993) FreeWare - © Koessi
  2022.